var status = null, date = '', arr = [],  rs = null, imei = getDeviceIdentity();
const reg = 'http://14.18.41.247:8060/valid/api/valid', query = 'http://14.18.41.247:8060/valid/api/queryVip';
//查询账号是否第一次使用
queryReg()




// autojs网络验证系统采用http协议安全可靠
// 开发环境为：window10 tomcat8 jdk1.8 mysql5.7 
// 运行环境为：centos7.5 jdk1.8 mysql5.7 企业级应用服务器
// 主要功能：
// 用户端：用户注册(自动注册无需手动注册) 、到期时间查询、设备激活状态查询、app持续更新
// 管理端：管理账号注册、用户账号激活、封号、解封、app后期更新
// 服务器端：账号注册、禁用、解封、激活、定时任务批量更改当前状态、用户查询等
// 使用方法：引入提供的脚本 
// 例如：engines.execScriptFile("./checkStatus.js"); 即可
// 教程简单明了，无需用户操心，安全放心。


function queryReg() {
    let r = http.post(reg, param());
    if (r.statusCode == 200) {
        rs = r.body.json();
        if (rs.code == 0) {//第一次使用
            isVip();
        } else {
            toastLog(rs.msg)
        }
    } else {
        logMsg()
    }
}

//查询账号状态是否是会员
function isVip() {
    let r = http.post(query, param());
    if (r.statusCode == 200) {
        rs = r.body.json();
        status = rs.code;
        if (status > 0 && status < 5) {
           var rr = engines.execScriptFile("./main.js");
           sleep(500)
           rr.getEngine().emit("imei", imei);
        } else if (status == 0) {
            var e = engines.execScriptFile("./register.js");
            sleep(500)
            e.getEngine().emit("imei", imei);
        } else {
            toastLog(rs.msg)
        }
    } else {
        logMsg();
    }
}


function param() {
    return {
        'imei': imei
    }
}

function logMsg() {
    toastLog("服务器连接失败，请联系管理员！")
}

function getDeviceIdentity() {
    let id = null;
    if (device.sdkInt >= 29) {
        let mac = device.getMacAddress()
        if (mac == null || mac == "" || mac == "00:00:00:00:00:00") return null
        return "M-" + xx(mac.replace(/:/, ""))
    }
    try {
        id = android.os.Build.getSerial();
    } catch (e) {
        if (e.javaException instanceof java.lang.SecurityException)
            return null;
    }
    if (id && id.toLowerCase() != "unknown") {
        id = xx(id)
    } else if (device.serial && device.serial.toLowerCase() != "unknown") {
        id = xx(device.serial)
    } else {
        let iii = null;
        let tm = context.getSystemService("phone");
        if (!tm) return null;
        try {
            iii = tm.getImei(0);
        } catch (e) {
            if (e.javaException instanceof java.lang.SecurityException)
                return null;
        }
        if (iii == null || iii == "000000000000000") {
            iii = device.getIMEI();
        }
        if (iii != null) id = "I-" + xx(iii);
        else return null
    }
    return id;
}

function xx(str) {
    var mod = "0123456789ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz"
    var arr = str.split("");
    for (var i in arr) arr[i] = mod[(mod.indexOf(arr[i]) + 10) % mod.length]
    return arr.reverse().join("")
}


